const {ccclass, property} = cc._decorator;

@ccclass
export default class Weapon extends cc.Component {

    @property({displayName: "这是第几号装备？", tooltip: "这是第几号装备？", type: cc.Float})
    num: number = 0;

    // 用来控制是否捡装备
    i: number = 0;


    // 碰撞回调
    // 当碰撞产生的时候调用    other 产生碰撞的另一个碰撞组件self  产生碰撞的自身的碰撞组件
    onCollisionEnter (other, self) {
        // 获取背包数据
        let bag = cc.sys.localStorage.getItem("bag");

        cc.log("和武器发生了碰撞,当前存储的数据的状况：", bag);

        // 如果有背包数据
        if (bag != null) {
            // 截成数组
            let s: string[] = bag.split(",");
            cc.log("截取后的数据为：", s);
            for (let i = 0; i < s.length - 1; i++) {     
                let n = Number(s[i]);           
                if (n != this.num) {
                    this.i ++;
                }
                if(this.i == s.length - 1) {
                    // 如果背包内没有这个武器
                    // 添加这个武器
                    this.add_weapon();

                    // 获取Create_Label脚本
                    let s = cc.find("Canvas").getComponent("Create_Label");
                    // 生成文字
                    s.create_new_label("成功捡起武器");
                } else {
                    // 获取Create_Label脚本
                    let s = cc.find("Canvas").getComponent("Create_Label");
                    // 生成文字
                    s.create_new_label("背包内已经有该武器");
                }
            }
        } else {
            // 添加武器
            this.add_weapon();
            // 获取Create_Label脚本
            let s = cc.find("Canvas").getComponent("Create_Label");
            // 生成文字
            s.create_new_label("成功捡起武器");
        }

        // 移除节点的cc.BoxCollider
        this.node.removeComponent(cc.BoxCollider);
    }


    // 添加武器专用函数
    add_weapon () {
        // 获取背包数据
        let bag = cc.sys.localStorage.getItem("bag");

        // 如果数据为null
        if (bag == null) {
            let b = this.num + ",";
            // 存起来
            cc.sys.localStorage.setItem("bag", b);
        } else {
            let b = bag + this.num + ",";
            // 存起来
            cc.sys.localStorage.setItem("bag", b);
        }
        cc.log("捡到了武器，武器号码为", this.num);

        // 销毁
        this.node.destroy();
    }

}
